package wodegua.d24_file_io;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * DataOutputStream(数据输出流)
 * ●允许把数据和其类型一并写出去
 *
 * 构造器
 * public DataOutputStream(OutputStream out)    创建新数据输出流包装基础的字节输出流
 *
 * 方法
 * public final void writeByte(int v) throws IException      将byte类型的数据写入基础的字节输出流
 * void writeInt(int v)throws IOException       将int类型的数据写入基础的字节输出流
 * public final void writeDouble(Double v) throws IOException      将double类型的数据写入基础的字节输出流
 * public final void writeUTF(string str) throws IoException     将字符串数据以UTF-8编码成字节写入基础的字节输出流
 * public void write(int/byte[]/byte[]一部分)      支持写字节数据出去
 *
 *
 * DataInputStream(数据输入流)
 * 用于读取数据输出流写出去的数据，
 * 构造器
 * public DataInputStream(InputStream is)   创建新数据输入流包装基础的字节输入流
 * 方法
 * Public final byte readByte()throws IException    读取字节数据返回
 * public final int readInt()throws IOException     读取int类型的数据返回
 * public final double readDouble()throws IOException       读取double类型的数据返回
 * public final string readUTF()throws IOException      读取字符串数(UTF-8)据返回
 * public int readInt()/read(byte[])    支持读字节数据进来
 */
public class d22_IoDataInputOutputStreamTest {
    public static void main(String[] args) {
        try (
                DataOutputStream dos = new DataOutputStream(new FileOutputStream("javase/data_out.txt"));
                DataInputStream dis = new DataInputStream(new FileInputStream("javase/data_out.txt"));
        ) {
            dos.writeInt(97);
            dos.writeDouble(99.9);
            dos.writeBoolean(true);
            dos.writeUTF("中国！");

            System.out.println(dis.readInt());
            System.out.println(dis.readDouble());
            System.out.println(dis.readBoolean());
            System.out.println(dis.readUTF());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
